package com.ruoyi.project.infobaseproject.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目库对象 info_base_project
 *
 * @author ruoyi
 * @date 2022-01-24
 */
public class InfoBaseProject extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;


    /**
     * 父id
     */
    private Long parentId;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称",scale = 1)
    private String projectName;

    /**
     * 年度
     */
    private String year;

    /**
     * 项目属性
     */
    @Excel(name = "项目属性",dictType = "project_attribute",scale = 2)
    private Integer projectAttribute;

    /**
     * 资金性质
     */
    private String projectMoneyType;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd",scale = 4)
    private Date endTime;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd",scale = 3)
    private Date createByTime;


    private String createBy;

    /**
     * 项目状态
     */
    @Excel(name = "项目状态",dictType = "project_status",scale = 14)
    private String projectStstus;

    /**
     * 资金总额
     */
    private BigDecimal yearMoney;
    /**
     * 其他资金
     */
    private BigDecimal otherFund;

    /**
     * 项目负责人
     */
    private String projectLead;

    /**
     * 项目负责人电话
     */
    private String projectLeadPhone;

    /**
     * 项目联系人
     */
    private String projectLiaison;

    /**
     * 联系人电话
     */
    private String projectLiaisonPhone;

    /**
     * 项目概况(项目简要描述）
     */
    private String projectSummarize;

    /**
     * 项目节点
     */

    private String projectNode;

    /**
     * 节点状态
     */
    private String projectNodeStatus;

    /**
     * 实施单位
     */
    private String workCompany;
    @Excel(name = "实施单位",scale = 12)
    private String workCompanyName;

    /**
     * 项目期
     */
    private String projectStage;

    /**
     * 项目中期目标
     */
    private String projectMiddleTarget;

    /**
     * 考核上报状态
     */
    private String checkStatus1;

    /**
     * 考核上报意见
     */
    private String checkOpinion;

    /**
     * 是否开展事前评估
     */
    private String isKzsqpg;

    /**
     * 库类型
     */
    private String projectType1;

    /**
     * 项目类型
     */
    private String projectType2;
    @Excel(name = "项目类型")
    private String projectTypeName;
    /**
     * 项目性质
     */
    private String projectNature;

    /**
     * 建设状态
     */
    private String projectBuildStatus;

    /**
     * 立项年度
     */
    private String createYear;

    /**
     * 建设期限(年)
     */
    private String buildYear;

    /**
     * 立项审批依据
     */
    private String foundBasis;

    /**
     * 立项审批级次
     */
    private String foundBatch;

    /**
     * 项目库审核状态 0 待提交  1待审核  2审核通过  3审核不通过
     */
    private String projectBaseStatus;

    /**
     * 项目所属地区(发行地区)
     */
    private String attributionArea;
    /**
     * 资金总额
     */
    private BigDecimal totalFunds;

    /**
     * 中央资金
     */
    private BigDecimal centralFund;

    /**
     * 省级资金
     */
    private BigDecimal provincialFunds;

    /**
     * 省本级资金分解情况
     */
    private BigDecimal provincialLevelFunds;

    /**
     * 转移市县分解情况
     */
    private BigDecimal tranCityFunds;

    /**
     * 所属处室
     */
    @Excel(name = "主管单位",scale = 11)
    private String departmentName;

    /**
     * 所属处室ID
     */
    private Long departmentId;

    /**
     * 下达状态  0 未下达 1 已下达
     */
    private Integer releaseStatus;

    /**
     * 年度总体目标
     */
    private String projectPerformanceTarget;

    /**
     * 子集项目
     */
    private List<Map<String,Object>> childProject;

    /**
     * 是否修改
     */
    private Integer isXg;

    /**
     * 是否手动添加
     */
    private Integer isHandAdd;

    /**
     * 是否查看全部(冗余)
     */
    private String isLookAll;

    private Integer serialNumber;
    private String fz;
    private String df;

    private String totalFz;
    private String totalDf;

//总额执行数
    private String totalEx;
    private String cenEx;
    private String proEx;
    private String othEx;
    //执行率
    private String totalRa;
    private String cenRa;
    private String proRa;
    private String othRa;

    private Integer implementStatus;
    /**
     * 资金规模
     */
    @Excel(name = "资金规模",scale = 15)
    private String capitalScale;

    /**
     * 资金渠道
     */
    @Excel(name = "资金渠道",scale = 16)
    private String fundChannels;

    /**
     * 资金完成情况
     */
    @Excel(name = "资金完成情况",scale = 17)
    private String fundCompletion;


    /**
     * 建设地点
     */
    @Excel(name = "建设地点",scale = 5)
    private String projectAddress;
    /**
     * 建设内容与规模
     */
    @Excel(name = "建设内容与规模",scale = 6)
    private String projectContent;
    @Excel(name = "投资估算",scale = 13)
    private BigDecimal projectMoney;
    @Excel(name = "项目效益(万元)",scale = 7)
    private String projectParam1;
    @Excel(name = "受益贫困村数(个)",scale = 8)
    private Integer projectParam2;
    @Excel(name = "受益贫困户及边缘户(万)",scale = 9)
    private Double projectParam3;
    @Excel(name = "受益贫困人口数（万）",scale = 10)
    private Double projectParam4;

    private String ancestors;

    /**
     * 调整标记
     */
    private Integer adjustTag;

    /**
     * 调整意见
     */
    private String managerRemark;

    /**
     * 申请原因
     */
    private String reasonAdjust;
    /**
     * 暂存表id
     */
    private Long stagingId;

    /**
     * 暂存表状态
     */
    private Integer projectAdjustStatus;


    public Integer getProjectAdjustStatus() {
        return projectAdjustStatus;
    }

    public void setProjectAdjustStatus(Integer projectAdjustStatus) {
        this.projectAdjustStatus = projectAdjustStatus;
    }

    public String getReasonAdjust() {
        return reasonAdjust;
    }

    public void setReasonAdjust(String reasonAdjust) {
        this.reasonAdjust = reasonAdjust;
    }

    public Long getStagingId() {
        return stagingId;
    }

    public void setStagingId(Long stagingId) {
        this.stagingId = stagingId;
    }

    public String getManagerRemark() {
        return managerRemark;
    }

    public void setManagerRemark(String managerRemark) {
        this.managerRemark = managerRemark;
    }

    public Integer getAdjustTag() {
        return adjustTag;
    }

    public void setAdjustTag(Integer adjustTag) {
        this.adjustTag = adjustTag;
    }

    public Integer getImplementStatus() {
        return implementStatus;
    }

    public void setImplementStatus(Integer implementStatus) {
        this.implementStatus = implementStatus;
    }

    public String getCapitalScale() {
        return capitalScale;
    }

    public void setCapitalScale(String capitalScale) {
        this.capitalScale = capitalScale;
    }

    public String getFundChannels() {
        return fundChannels;
    }

    public void setFundChannels(String fundChannels) {
        this.fundChannels = fundChannels;
    }

    public String getFundCompletion() {
        return fundCompletion;
    }

    public void setFundCompletion(String fundompletion) {
        this.fundCompletion = fundompletion;
    }

    public String getWorkCompanyName() {
        return workCompanyName;
    }

    public void setWorkCompanyName(String workCompanyName) {
        this.workCompanyName = workCompanyName;
    }

    public String getProjectTypeName() {
        return projectTypeName;
    }

    public void setProjectTypeName(String projectTypeName) {
        this.projectTypeName = projectTypeName;
    }

    public String getAncestors() {
        return ancestors;
    }

    public void setAncestors(String ancestors) {
        this.ancestors = ancestors;
    }

    public String getProjectAddress() {
        return projectAddress;
    }

    public void setProjectAddress(String projectAddress) {
        this.projectAddress = projectAddress;
    }

    public String getProjectContent() {
        return projectContent;
    }

    public void setProjectContent(String projectContent) {
        this.projectContent = projectContent;
    }

    public BigDecimal getProjectMoney() {
        return projectMoney;
    }

    public void setProjectMoney(BigDecimal projectMoney) {
        this.projectMoney = projectMoney;
    }

    public String getProjectParam1() {
        return projectParam1;
    }

    public void setProjectParam1(String projectParam1) {
        this.projectParam1 = projectParam1;
    }

    public Integer getProjectParam2() {
        return projectParam2;
    }

    public void setProjectParam2(Integer projectParam2) {
        this.projectParam2 = projectParam2;
    }

    public Double getProjectParam3() {
        return projectParam3;
    }

    public void setProjectParam3(Double projectParam3) {
        this.projectParam3 = projectParam3;
    }

    public Double getProjectParam4() {
        return projectParam4;
    }

    public void setProjectParam4(Double projectParam4) {
        this.projectParam4 = projectParam4;
    }

    public List<Map<String, Object>> getChildProject() {
        return childProject;
    }

    public void setChildProject(List<Map<String, Object>> childProject) {
        this.childProject = childProject;
    }

    public String getTotalFz() {
        return totalFz;
    }

    public void setTotalFz(String totalFz) {
        this.totalFz = totalFz;
    }

    public String getTotalDf() {
        return totalDf;
    }

    public void setTotalDf(String totalDf) {
        this.totalDf = totalDf;
    }

    public String getTotalRa() {
        return totalRa;
    }

    public void setTotalRa(String totalRa) {
        this.totalRa = totalRa;
    }

    public String getCenRa() {
        return cenRa;
    }

    public void setCenRa(String cenRa) {
        this.cenRa = cenRa;
    }

    public String getProRa() {
        return proRa;
    }

    public void setProRa(String proRa) {
        this.proRa = proRa;
    }

    public String getOthRa() {
        return othRa;
    }

    public void setOthRa(String othRa) {
        this.othRa = othRa;
    }

    public Integer getSerialNumber() {
        return serialNumber;
    }

    public void setSerialNumber(Integer serialNumber) {
        this.serialNumber = serialNumber;
    }
    public String getTotalEx() {
        return totalEx;
    }

    public void setTotalEx(String totalEx) {
        this.totalEx = totalEx;
    }

    public String getCenEx() {
        return cenEx;
    }

    public void setCenEx(String cenEx) {
        this.cenEx = cenEx;
    }

    public String getProEx() {
        return proEx;
    }

    public void setProEx(String proEx) {
        this.proEx = proEx;
    }

    public String getOthEx() {
        return othEx;
    }

    public void setOthEx(String othEx) {
        this.othEx = othEx;
    }

    public String getFz() {
        return fz;
    }

    public void setFz(String fz) {
        this.fz = fz;
    }

    public String getDf() {
        return df;
    }

    public void setDf(String df) {
        this.df = df;
    }

    public Integer getIsXg() {
        return isXg;
    }

    public void setIsXg(Integer isXg) {
        this.isXg = isXg;
    }

    public Date getCreateByTime() {
        return createByTime;
    }

    public void setCreateByTime(Date createByTime) {
        this.createByTime = createByTime;
    }

    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public String getYear() {
        return year;
    }

    public Integer getProjectAttribute() {
        return projectAttribute;
    }

    public void setProjectAttribute(Integer projectAttribute) {
        this.projectAttribute = projectAttribute;
    }

    public BigDecimal getOtherFund() {
        return otherFund;
    }

    public void setOtherFund(BigDecimal otherFund) {
        this.otherFund = otherFund;
    }

    public void setProjectMoneyType(String projectMoneyType) {
        this.projectMoneyType = projectMoneyType;
    }

    public String getProjectMoneyType() {
        return projectMoneyType;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setProjectStstus(String projectStstus) {
        this.projectStstus = projectStstus;
    }

    public String getProjectStstus() {
        return projectStstus;
    }

    public void setYearMoney(BigDecimal yearMoney) {
        this.yearMoney = yearMoney;
    }

    public BigDecimal getYearMoney() {
        return yearMoney;
    }

    public void setProjectLead(String projectLead) {
        this.projectLead = projectLead;
    }

    public String getProjectLead() {
        return projectLead;
    }

    public void setProjectLeadPhone(String projectLeadPhone) {
        this.projectLeadPhone = projectLeadPhone;
    }

    public String getProjectLeadPhone() {
        return projectLeadPhone;
    }

    public void setProjectLiaison(String projectLiaison) {
        this.projectLiaison = projectLiaison;
    }

    public String getProjectLiaison() {
        return projectLiaison;
    }

    public void setProjectLiaisonPhone(String projectLiaisonPhone) {
        this.projectLiaisonPhone = projectLiaisonPhone;
    }

    public String getProjectLiaisonPhone() {
        return projectLiaisonPhone;
    }

    public void setProjectSummarize(String projectSummarize) {
        this.projectSummarize = projectSummarize;
    }

    public String getProjectSummarize() {
        return projectSummarize;
    }

    public void setProjectNode(String projectNode) {
        this.projectNode = projectNode;
    }

    public String getProjectNode() {
        return projectNode;
    }

    public void setProjectNodeStatus(String projectNodeStatus) {
        this.projectNodeStatus = projectNodeStatus;
    }

    public String getProjectNodeStatus() {
        return projectNodeStatus;
    }

    public void setWorkCompany(String workCompany) {
        this.workCompany = workCompany;
    }

    public String getWorkCompany() {
        return workCompany;
    }

    public void setProjectStage(String projectStage) {
        this.projectStage = projectStage;
    }

    public String getProjectStage() {
        return projectStage;
    }

    public void setProjectMiddleTarget(String projectMiddleTarget) {
        this.projectMiddleTarget = projectMiddleTarget;
    }

    public String getProjectMiddleTarget() {
        return projectMiddleTarget;
    }

    public void setCheckStatus1(String checkStatus1) {
        this.checkStatus1 = checkStatus1;
    }

    public String getCheckStatus1() {
        return checkStatus1;
    }

    public void setCheckOpinion(String checkOpinion) {
        this.checkOpinion = checkOpinion;
    }

    public String getCheckOpinion() {
        return checkOpinion;
    }

    public void setIsKzsqpg(String isKzsqpg) {
        this.isKzsqpg = isKzsqpg;
    }

    public String getIsKzsqpg() {
        return isKzsqpg;
    }

    public void setProjectType1(String projectType1) {
        this.projectType1 = projectType1;
    }

    public String getProjectType1() {
        return projectType1;
    }

    public void setProjectType2(String projectType2) {
        this.projectType2 = projectType2;
    }

    public String getProjectType2() {
        return projectType2;
    }

    public void setProjectNature(String projectNature) {
        this.projectNature = projectNature;
    }

    public String getProjectNature() {
        return projectNature;
    }

    public void setProjectBuildStatus(String projectBuildStatus) {
        this.projectBuildStatus = projectBuildStatus;
    }

    public String getProjectBuildStatus() {
        return projectBuildStatus;
    }

    public void setCreateYear(String createYear) {
        this.createYear = createYear;
    }

    public String getCreateYear() {
        return createYear;
    }

    public void setBuildYear(String buildYear) {
        this.buildYear = buildYear;
    }

    public String getBuildYear() {
        return buildYear;
    }

    public void setFoundBasis(String foundBasis) {
        this.foundBasis = foundBasis;
    }

    public String getFoundBasis() {
        return foundBasis;
    }

    public void setFoundBatch(String foundBatch) {
        this.foundBatch = foundBatch;
    }

    public String getFoundBatch() {
        return foundBatch;
    }

    public void setProjectBaseStatus(String projectBaseStatus) {
        this.projectBaseStatus = projectBaseStatus;
    }

    public String getProjectBaseStatus() {
        return projectBaseStatus;
    }

    public void setAttributionArea(String attributionArea) {
        this.attributionArea = attributionArea;
    }

    public String getAttributionArea() {
        return attributionArea;
    }

    public BigDecimal getTotalFunds() {
        return totalFunds;
    }

    public void setTotalFunds(BigDecimal totalFunds) {
        this.totalFunds = totalFunds;
    }

    public BigDecimal getCentralFund() {
        return centralFund;
    }

    public void setCentralFund(BigDecimal centralFund) {
        this.centralFund = centralFund;
    }

    public BigDecimal getProvincialFunds() {
        return provincialFunds;
    }

    public void setProvincialFunds(BigDecimal provincialFunds) {
        this.provincialFunds = provincialFunds;
    }

    public BigDecimal getProvincialLevelFunds() {
        return provincialLevelFunds;
    }

    public void setProvincialLevelFunds(BigDecimal provincialLevelFunds) {
        this.provincialLevelFunds = provincialLevelFunds;
    }

    public BigDecimal getTranCityFunds() {
        return tranCityFunds;
    }

    public void setTranCityFunds(BigDecimal tranCityFunds) {
        this.tranCityFunds = tranCityFunds;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public Integer getReleaseStatus() {
        return releaseStatus;
    }

    public void setReleaseStatus(Integer releaseStatus) {
        this.releaseStatus = releaseStatus;
    }

    public String getProjectPerformanceTarget() {
        return projectPerformanceTarget;
    }

    public void setProjectPerformanceTarget(String projectPerformanceTarget) {
        this.projectPerformanceTarget = projectPerformanceTarget;
    }
    public Integer getIsHandAdd() {
        return isHandAdd;
    }

    public void setIsHandAdd(Integer isHandAdd) {
        this.isHandAdd = isHandAdd;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("parentId", getParentId())
                .append("projectName", getProjectName())
                .append("year", getYear())
                .append("projectAttribute", getProjectAttribute())
                .append("projectMoneyType", getProjectMoneyType())
                .append("createTime", getCreateTime())
                .append("endTime", getEndTime())
                .append("projectStstus", getProjectStstus())
                .append("yearMoney", getYearMoney())
                .append("projectLead", getProjectLead())
                .append("projectLeadPhone", getProjectLeadPhone())
                .append("projectLiaison", getProjectLiaison())
                .append("projectLiaisonPhone", getProjectLiaisonPhone())
                .append("projectSummarize", getProjectSummarize())
                .append("projectNode", getProjectNode())
                .append("projectNodeStatus", getProjectNodeStatus())
                .append("workCompany", getWorkCompany())
                .append("projectStage", getProjectStage())
                .append("projectMiddleTarget", getProjectMiddleTarget())
                .append("checkStatus1", getCheckStatus1())
                .append("checkOpinion", getCheckOpinion())
                .append("isKzsqpg", getIsKzsqpg())
                .append("projectType1", getProjectType1())
                .append("projectType2", getProjectType2())
                .append("projectNature", getProjectNature())
                .append("projectBuildStatus", getProjectBuildStatus())
                .append("createYear", getCreateYear())
                .append("buildYear", getBuildYear())
                .append("foundBasis", getFoundBasis())
                .append("foundBatch", getFoundBatch())
                .append("projectBaseStatus", getProjectBaseStatus())
                .append("attributionArea", getAttributionArea())
                .append("remark", getRemark())
                .append("totalFunds", getTotalFunds())
                .append("centralFund", getCentralFund())
                .append("provincialFunds", getProvincialFunds())
                .append("provincialLevelFunds", getProvincialLevelFunds())
                .append("tranCityFunds", getTranCityFunds())
                .append("departmentName", getDepartmentName())
                .append("departmentId", getDepartmentId())
                .append("releaseStatus", getReleaseStatus())
                .append("createBy", getCreateBy())
                .append("createByTime", getCreateByTime())
                .append("otherFund", getOtherFund())
                .append("isXg", getIsXg())
                .toString();
    }


    public String getIsLookAll() {
        return isLookAll;
    }

    public void setIsLookAll(String isLookAll) {
        this.isLookAll = isLookAll;
    }
}
